{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "5d037743",
      "metadata": {
        "id": "5d037743"
      },
      "source": [
        "# Pulse Wave Analysis\n",
        "In this tutorial we will learn how to extract features from PPG pulse waves.\n",
        "\n",
        "Our **objectives** are to:\n",
        "- Detect several fiducial points on PPG pulse waves\n",
        "- Calculate pulse wave features from the fiducial points"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "cd0ac989",
      "metadata": {
        "id": "cd0ac989"
      },
      "source": [
        "<div class=\"alert alert-block alert-warning\"><p><b>Context:</b> One approach to estimating BP from PPG signals consists of extracting features from PPG pulse waves, and then using these as inputs to BP estimation model. This tutorial covers the first of these steps: extracting features from PPG pulse waves.</p></div>"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "b38ec559",
      "metadata": {
        "id": "b38ec559"
      },
      "source": [
        "<div class=\"alert alert-block alert-info\"><p><b>Resource:</b> You can read more about pulse wave analysis in Sections 3.2.2 and 3.2.3 of <a href=\"https://peterhcharlton.github.io/publication/ppg_sig_proc_chapter/\">this book</a>.</p></div>"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "1afcdef9",
      "metadata": {
        "id": "1afcdef9"
      },
      "source": [
        "---\n",
        "## Setup"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "edd8e0c5",
      "metadata": {
        "id": "edd8e0c5"
      },
      "source": [
        "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "ce3cdfde",
      "metadata": {
        "id": "ce3cdfde",
        "outputId": "d96772ad-77a6-46be-ea05-75e29f00585c",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting wfdb==4.0.0\n",
            "  Downloading wfdb-4.0.0-py3-none-any.whl (161 kB)\n",
            "\u001b[K     |████████████████████████████████| 161 kB 7.6 MB/s \n",
            "\u001b[?25hRequirement already satisfied: numpy<2.0.0,>=1.10.1 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (1.21.6)\n",
            "Requirement already satisfied: pandas<2.0.0,>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (1.3.5)\n",
            "Requirement already satisfied: matplotlib<4.0.0,>=3.2.2 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (3.2.2)\n",
            "Requirement already satisfied: scipy<2.0.0,>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (1.4.1)\n",
            "Requirement already satisfied: requests<3.0.0,>=2.8.1 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (2.23.0)\n",
            "Requirement already satisfied: SoundFile<0.12.0,>=0.10.0 in /usr/local/lib/python3.7/dist-packages (from wfdb==4.0.0) (0.10.3.post1)\n",
            "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (3.0.9)\n",
            "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (2.8.2)\n",
            "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (0.11.0)\n",
            "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (1.4.3)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from kiwisolver>=1.0.1->matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (4.1.1)\n",
            "Requirement already satisfied: pytz>=2017.3 in /usr/local/lib/python3.7/dist-packages (from pandas<2.0.0,>=1.0.0->wfdb==4.0.0) (2022.1)\n",
            "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.7/dist-packages (from python-dateutil>=2.1->matplotlib<4.0.0,>=3.2.2->wfdb==4.0.0) (1.15.0)\n",
            "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (2022.6.15)\n",
            "Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (2.10)\n",
            "Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (3.0.4)\n",
            "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests<3.0.0,>=2.8.1->wfdb==4.0.0) (1.24.3)\n",
            "Requirement already satisfied: cffi>=1.0 in /usr/local/lib/python3.7/dist-packages (from SoundFile<0.12.0,>=0.10.0->wfdb==4.0.0) (1.15.0)\n",
            "Requirement already satisfied: pycparser in /usr/local/lib/python3.7/dist-packages (from cffi>=1.0->SoundFile<0.12.0,>=0.10.0->wfdb==4.0.0) (2.21)\n",
            "Installing collected packages: wfdb\n",
            "Successfully installed wfdb-4.0.0\n"
          ]
        }
      ],
      "source": [
        "import sys\n",
        "import numpy as np\n",
        "import scipy.signal as sp\n",
        "\n",
        "from matplotlib import pyplot as plt\n",
        "\n",
        "!pip install wfdb==4.0.0\n",
        "import wfdb"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "ee8532b2",
      "metadata": {
        "id": "ee8532b2"
      },
      "outputs": [],
      "source": [
        "# The name of the MIMIC-IV Waveform Database on PhysioNet\n",
        "database_name = 'mimic4wdb/0.1.0'\n",
        "\n",
        "# Segment for analysis\n",
        "segment_names = ['83404654_0005', '82924339_0007', '84248019_0005', '82439920_0004', '82800131_0002', '84304393_0001', '89464742_0001', '88958796_0004', '88995377_0001', '85230771_0004', '86643930_0004', '81250824_0005', '87706224_0003', '83058614_0005', '82803505_0017', '88574629_0001', '87867111_0012', '84560969_0001', '87562386_0001', '88685937_0001', '86120311_0001', '89866183_0014', '89068160_0002', '86380383_0001', '85078610_0008', '87702634_0007', '84686667_0002', '84802706_0002', '81811182_0004', '84421559_0005', '88221516_0007', '80057524_0005', '84209926_0018', '83959636_0010', '89989722_0016', '89225487_0007', '84391267_0001', '80889556_0002', '85250558_0011', '84567505_0005', '85814172_0007', '88884866_0005', '80497954_0012', '80666640_0014', '84939605_0004', '82141753_0018', '86874920_0014', '84505262_0010', '86288257_0001', '89699401_0001', '88537698_0013', '83958172_0001']\n",
        "segment_dirs = ['mimic4wdb/0.1.0/waves/p100/p10020306/83404654', 'mimic4wdb/0.1.0/waves/p101/p10126957/82924339', 'mimic4wdb/0.1.0/waves/p102/p10209410/84248019', 'mimic4wdb/0.1.0/waves/p109/p10952189/82439920', 'mimic4wdb/0.1.0/waves/p111/p11109975/82800131', 'mimic4wdb/0.1.0/waves/p113/p11392990/84304393', 'mimic4wdb/0.1.0/waves/p121/p12168037/89464742', 'mimic4wdb/0.1.0/waves/p121/p12173569/88958796', 'mimic4wdb/0.1.0/waves/p121/p12188288/88995377', 'mimic4wdb/0.1.0/waves/p128/p12872596/85230771', 'mimic4wdb/0.1.0/waves/p129/p12933208/86643930', 'mimic4wdb/0.1.0/waves/p130/p13016481/81250824', 'mimic4wdb/0.1.0/waves/p132/p13240081/87706224', 'mimic4wdb/0.1.0/waves/p136/p13624686/83058614', 'mimic4wdb/0.1.0/waves/p137/p13791821/82803505', 'mimic4wdb/0.1.0/waves/p141/p14191565/88574629', 'mimic4wdb/0.1.0/waves/p142/p14285792/87867111', 'mimic4wdb/0.1.0/waves/p143/p14356077/84560969', 'mimic4wdb/0.1.0/waves/p143/p14363499/87562386', 'mimic4wdb/0.1.0/waves/p146/p14695840/88685937', 'mimic4wdb/0.1.0/waves/p149/p14931547/86120311', 'mimic4wdb/0.1.0/waves/p151/p15174162/89866183', 'mimic4wdb/0.1.0/waves/p153/p15312343/89068160', 'mimic4wdb/0.1.0/waves/p153/p15342703/86380383', 'mimic4wdb/0.1.0/waves/p155/p15552902/85078610', 'mimic4wdb/0.1.0/waves/p156/p15649186/87702634', 'mimic4wdb/0.1.0/waves/p158/p15857793/84686667', 'mimic4wdb/0.1.0/waves/p158/p15865327/84802706', 'mimic4wdb/0.1.0/waves/p158/p15896656/81811182', 'mimic4wdb/0.1.0/waves/p159/p15920699/84421559', 'mimic4wdb/0.1.0/waves/p160/p16034243/88221516', 'mimic4wdb/0.1.0/waves/p165/p16566444/80057524', 'mimic4wdb/0.1.0/waves/p166/p16644640/84209926', 'mimic4wdb/0.1.0/waves/p167/p16709726/83959636', 'mimic4wdb/0.1.0/waves/p167/p16715341/89989722', 'mimic4wdb/0.1.0/waves/p168/p16818396/89225487', 'mimic4wdb/0.1.0/waves/p170/p17032851/84391267', 'mimic4wdb/0.1.0/waves/p172/p17229504/80889556', 'mimic4wdb/0.1.0/waves/p173/p17301721/85250558', 'mimic4wdb/0.1.0/waves/p173/p17325001/84567505', 'mimic4wdb/0.1.0/waves/p174/p17490822/85814172', 'mimic4wdb/0.1.0/waves/p177/p17738824/88884866', 'mimic4wdb/0.1.0/waves/p177/p17744715/80497954', 'mimic4wdb/0.1.0/waves/p179/p17957832/80666640', 'mimic4wdb/0.1.0/waves/p180/p18080257/84939605', 'mimic4wdb/0.1.0/waves/p181/p18109577/82141753', 'mimic4wdb/0.1.0/waves/p183/p18324626/86874920', 'mimic4wdb/0.1.0/waves/p187/p18742074/84505262', 'mimic4wdb/0.1.0/waves/p188/p18824975/86288257', 'mimic4wdb/0.1.0/waves/p191/p19126489/89699401', 'mimic4wdb/0.1.0/waves/p193/p19313794/88537698', 'mimic4wdb/0.1.0/waves/p196/p19619764/83958172']\n",
        "\n",
        "# 3 and 8 are helpful\n",
        "rel_segment_no = 3\n",
        "rel_segment_name = segment_names[rel_segment_no]\n",
        "rel_segment_dir = segment_dirs[rel_segment_no]"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "61a9432c",
      "metadata": {
        "id": "61a9432c"
      },
      "source": [
        "---\n",
        "## Extract one minute of PPG signals from this segment"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "09d5a7e2",
      "metadata": {
        "id": "09d5a7e2"
      },
      "source": [
        "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "7dbf9e3a",
      "metadata": {
        "id": "7dbf9e3a",
        "outputId": "5b85a080-658b-448e-a396-0dc5e922d8ec",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Metadata loaded from segment: 82439920_0004\n",
            "20 seconds of data extracted from: 82439920_0004\n",
            "Extracted the PPG signal from column 6 of the matrix of waveform data at 62.5 Hz.\n"
          ]
        }
      ],
      "source": [
        "# time since the start of the segment at which to begin extracting data\n",
        "start_seconds = 100\n",
        "n_seconds_to_load = 20\n",
        "\n",
        "segment_metadata = wfdb.rdheader(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n",
        "print(f\"Metadata loaded from segment: {rel_segment_name}\")\n",
        "\n",
        "fs = round(segment_metadata.fs)\n",
        "sampfrom = fs*start_seconds\n",
        "sampto = fs * (start_seconds + n_seconds_to_load)\n",
        "segment_data = wfdb.rdrecord(record_name=rel_segment_name,\n",
        "                             sampfrom=sampfrom,\n",
        "                             sampto=sampto,\n",
        "                             pn_dir=rel_segment_dir) \n",
        "\n",
        "print(\"{} seconds of data extracted from: {}\".format(n_seconds_to_load,\n",
        "                                                     rel_segment_name))\n",
        "\n",
        "ppg_col = []\n",
        "for sig_no in range(0, len(segment_data.sig_name)):\n",
        "    if \"Pleth\" in segment_data.sig_name[sig_no]:\n",
        "        ppg_col = sig_no\n",
        "\n",
        "ppg = segment_data.p_signal[:, ppg_col]\n",
        "fs = segment_data.fs\n",
        "\n",
        "print(f\"Extracted the PPG signal from column {ppg_col} of the matrix of waveform data at {fs:.1f} Hz.\")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "3b79a329",
      "metadata": {
        "id": "3b79a329"
      },
      "source": [
        "---\n",
        "## Filter the PPG signal"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "8679f4d8",
      "metadata": {
        "id": "8679f4d8"
      },
      "source": [
        "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "cea96b6f",
      "metadata": {
        "id": "cea96b6f"
      },
      "outputs": [],
      "source": [
        "# package\n",
        "import scipy.signal as sp\n",
        "\n",
        "# filter cut-offs, hertz\n",
        "lpf_cutoff = 0.7\n",
        "hpf_cutoff = 10\n",
        "\n",
        "# create filter\n",
        "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff],\n",
        "                       btype = 'bp',\n",
        "                       analog = False,\n",
        "                       output = 'sos',\n",
        "                       fs = segment_data.fs)\n",
        "\n",
        "w, h = sp.sosfreqz(sos_filter, 2000, fs = fs)\n",
        "\n",
        "# filter PPG\n",
        "ppg_filt = sp.sosfiltfilt(sos_filter, ppg)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "1705ff48",
      "metadata": {
        "id": "1705ff48"
      },
      "source": [
        "---\n",
        "## Detect beats in the PPG signal"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "2b153ea5",
      "metadata": {
        "id": "2b153ea5"
      },
      "source": [
        "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9fe8c377",
      "metadata": {
        "id": "9fe8c377"
      },
      "source": [
        "- Import the functions required to detect beats by running the cell containing the required functions at the end of this tutorial.\n",
        "- Detect beats"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "id": "506473f0",
      "metadata": {
        "id": "506473f0",
        "outputId": "bc8869cf-76c7-4fca-c113-f186aada165b",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Detected 24 beats in the PPG signal using the d2max algorithm\n"
          ]
        }
      ],
      "source": [
        "temp_fs = 125\n",
        "alg = 'd2max'\n",
        "ibis = pulse_detect(ppg_filt, temp_fs, 5, alg)\n",
        "\n",
        "print(f\"Detected {len(ibis)} beats in the PPG signal using the {alg} algorithm\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "id": "a959595c",
      "metadata": {
        "id": "a959595c",
        "outputId": "256e4451-a70c-45c2-c6d3-818d4db0f315",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 557
        }
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.0, 'd2max')"
            ]
          },
          "metadata": {},
          "execution_count": 11
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 576x576 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "from matplotlib import pyplot as plt\n",
        "\n",
        "fig, (ax1) = plt.subplots(1, 1,\n",
        "                          sharex = False,\n",
        "                          sharey = False,\n",
        "                          figsize = (8,8))\n",
        "\n",
        "fig.suptitle('IBIs detection') \n",
        "\n",
        "t = np.arange(0,len(ppg_filt)/fs,1.0/fs)\n",
        "\n",
        "ax1.plot(t, ppg_filt, color = 'black')\n",
        "ax1.scatter(t[0] + ibis/fs, ppg_filt[ibis], color = 'orange', marker = 'o')\n",
        "ax1.set_ylabel('PPG [V]')\n",
        "ax1.set_title(alg)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "1699442c",
      "metadata": {
        "id": "1699442c"
      },
      "source": [
        "## Identify fiducial points on pulse waves"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "71c17d51",
      "metadata": {
        "id": "71c17d51"
      },
      "source": [
        "- Import the functions required to detect beats by running the cell containing the required functions at the end of this tutorial.\n",
        "- Identify and visualise fiducial points"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "id": "d48a919e",
      "metadata": {
        "id": "d48a919e",
        "outputId": "a0ea4f4f-e7cc-438d-c69a-7f5f3e6cf629",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 682
        }
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 720x720 with 4 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "source": [
        "fidp = fiducial_points(ppg_filt, ibis, fs, vis = True)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "36bdf3a9",
      "metadata": {
        "id": "36bdf3a9"
      },
      "source": [
        "- Note how the data are stored in the variable `fidp`:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "id": "da4015c8",
      "metadata": {
        "id": "da4015c8",
        "outputId": "eb7e3028-8f60-4c7c-f487-513ffe000fbe",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "{'a2d': array([ 111,  160,  210,  259,  309,  359,  409,  458,  507,  556,  607,\n",
            "        646,  704,  755,  805,  854,  903,  953, 1003, 1052, 1101, 1150]),\n",
            " 'b2d': array([ 118,  167,  217,  266,  316,  365,  415,  464,  514,  563,  613,\n",
            "        652,  710,  762,  811,  861,  909,  959, 1009, 1058, 1107, 1157]),\n",
            " 'bmag2d': array([-1.20904914, -1.27434528, -1.18617494, -1.25106435, -1.17975974,\n",
            "       -1.12447263, -1.3061457 , -1.12799448, -1.18401298, -1.36005387,\n",
            "       -1.30485677, -1.26691507, -1.34436591, -1.35381951, -1.10175006,\n",
            "       -1.27191046, -1.06948183, -1.23981112, -1.16142864, -1.15492695,\n",
            "       -1.18547511, -1.15976755]),\n",
            " 'c2d': array([ 123,  175,  226,  272,  322,  372,  421,  471,  519,  568,  619,\n",
            "        657,  715,  767,  818,  867,  915,  964, 1015, 1067, 1113, 1162]),\n",
            " 'cmag2d': array([-0.05526044,  0.00494062,  0.00941491,  0.07592429, -0.08726073,\n",
            "       -0.04180734,  0.02715034,  0.05699838, -0.04395489,  0.12223351,\n",
            "       -0.06261118, -0.23006774,  0.02414888, -0.05513966,  0.01296256,\n",
            "        0.05157275, -0.0830145 ,  0.05575652, -0.14305034, -0.0055691 ,\n",
            "       -0.05237448, -0.09997798]),\n",
            " 'd2d': array([ 125,  175,  226,  275,  324,  373,  424,  474,  521,  572,  621,\n",
            "        659,  718,  769,  820,  870,  917,  967, 1016, 1067, 1115, 1164]),\n",
            " 'dia': array([ 140,  188,  241,  290,  338,  388,  438,  487,  536,  586,  633,\n",
            "        673,  732,  783,  834,  883,  933,  982, 1031, 1081, 1131, 1178]),\n",
            " 'dic': array([ 131,  181,  231,  280,  330,  380,  430,  479,  527,  576,  627,\n",
            "        668,  727,  775,  825,  875,  925,  974, 1024, 1074, 1122, 1170]),\n",
            " 'dmag2d': array([-0.15894175,  0.00494062,  0.00941491, -0.04033107, -0.12765008,\n",
            "       -0.05821972, -0.05397396, -0.04063181, -0.13653246, -0.34360707,\n",
            "       -0.0918036 , -0.3475212 , -0.19271096, -0.17903953, -0.03945182,\n",
            "       -0.11730829, -0.11470973, -0.33752922, -0.15649059, -0.0055691 ,\n",
            "       -0.12642557, -0.16601408]),\n",
            " 'e2d': array([ 131,  181,  231,  280,  330,  380,  430,  479,  527,  576,  627,\n",
            "        668,  727,  775,  825,  875,  925,  974, 1024, 1074, 1122, 1170]),\n",
            " 'emag2d': array([0.40770919, 0.46482957, 0.48300358, 0.37208629, 0.44709264,\n",
            "       0.42722916, 0.47149855, 0.41017449, 0.3312905 , 0.52228067,\n",
            "       0.4666926 , 0.50848338, 0.40452346, 0.43939758, 0.42720655,\n",
            "       0.51448892, 0.39003415, 0.39280966, 0.40374007, 0.40753314,\n",
            "       0.33499539, 0.40420094]),\n",
            " 'm1d': array([ 114,  163,  213,  262,  313,  362,  412,  461,  510,  560,  610,\n",
            "        650,  707,  758,  808,  857,  906,  956, 1006, 1055, 1104, 1153]),\n",
            " 'off': array([ 157,  207,  256,  307,  356,  406,  455,  504,  554,  604,  644,\n",
            "        701,  752,  802,  851,  901,  950, 1000, 1049, 1098, 1147, 1197]),\n",
            " 'ons': array([ 108,  157,  207,  256,  307,  356,  406,  455,  504,  554,  604,\n",
            "        644,  701,  752,  802,  851,  901,  950, 1000, 1049, 1098, 1147]),\n",
            " 'p1p': array([ 120,  169,  219,  268,  318,  368,  418,  467,  516,  566,  615,\n",
            "        654,  712,  764,  814,  863,  912,  961, 1011, 1061, 1109, 1159]),\n",
            " 'p2p': array([ 124,  178,  234,  273,  323,  372,  423,  472,  520,  570,  620,\n",
            "        658,  716,  768,  819,  868,  916,  966, 1015, 1077, 1114, 1163]),\n",
            " 'pks': array([ 119,  168,  218,  267,  317,  367,  416,  466,  515,  564,  614,\n",
            "        654,  711,  763,  813,  862,  911,  961, 1011, 1060, 1108, 1158]),\n",
            " 'tip': array([ 111,  160,  210,  259,  309,  359,  409,  458,  507,  556,  607,\n",
            "        646,  704,  755,  805,  854,  903,  953, 1003, 1052, 1101, 1150])}\n"
          ]
        }
      ],
      "source": [
        "from pprint import pprint\n",
        "pprint(fidp)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "3ff20391",
      "metadata": {
        "id": "3ff20391"
      },
      "source": [
        "## Calculate pulse wave features\n",
        "We will now calculate pulse wave features from the amplitudes and timings of the fiducial points on each pulse wave."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9e261798",
      "metadata": {
        "id": "9e261798"
      },
      "source": [
        "<div class=\"alert alert-block alert-warning\"> <b>Explanation:</b> Pulse wave features can be derived from the differences between the amplitudes (or timings) of fiducial points, as shown below:</div>"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c890808c",
      "metadata": {
        "id": "c890808c"
      },
      "source": [
        "![pw indices](https://upload.wikimedia.org/wikipedia/commons/c/cc/Photoplethysmogram_%28PPG%29_pulse_wave_indices.svg)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a8859c02",
      "metadata": {
        "id": "a8859c02"
      },
      "source": [
        "Source: _Charlton PH, [Photoplethysmogram (PPG) pulse wave indices](https://commons.wikimedia.org/wiki/File:Photoplethysmogram_\\(PPG\\)_pulse_wave_indices.svg), Wikimedia Commons, CC BY 4.0_"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "a90b579b",
      "metadata": {
        "id": "a90b579b"
      },
      "source": [
        "- `fidp` is a dictionary consisting of several arrays (one per fiducial point), with each array containing the indices of that fiducial point for all of the pulse waves. For instance, we can inspect the indices of the dicrotic notches (`dic`) using:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "id": "ce142493",
      "metadata": {
        "id": "ce142493",
        "outputId": "69ac0c34-cd5c-438c-b9b0-c1e53da56ac2",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Indices of dicrotic notches:\n",
            "[ 131  181  231  280  330  380  430  479  527  576  627  668  727  775\n",
            "  825  875  925  974 1024 1074 1122 1170]\n"
          ]
        }
      ],
      "source": [
        "print(\"Indices of dicrotic notches:\")\n",
        "print(fidp[\"dic\"])"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "abe3e963",
      "metadata": {
        "id": "abe3e963"
      },
      "source": [
        "- We'll start off by calculating $\\Delta$T, the time delay between systolic and diastolic peaks (`pks` and `dia`):"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "id": "bed1d512",
      "metadata": {
        "id": "bed1d512",
        "outputId": "3d1ccc2d-a530-4cb2-d769-c71fb61f08e3",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Values of Delta T:\n",
            "[0.33614791 0.32014086 0.36816199 0.36816199 0.33614791 0.33614791\n",
            " 0.35215495 0.33614791 0.33614791 0.35215495 0.30413382 0.30413382\n",
            " 0.33614791 0.32014086 0.33614791 0.33614791 0.35215495 0.33614791\n",
            " 0.32014086 0.33614791 0.36816199 0.32014086]\n"
          ]
        }
      ],
      "source": [
        "delta_t = np.zeros(len(fidp[\"dia\"]))\n",
        "for beat_no in range(len(fidp[\"dia\"])):\n",
        "    delta_t[beat_no] = (fidp[\"dia\"][beat_no]-fidp[\"pks\"][beat_no])/fs\n",
        "print(\"Values of Delta T:\")\n",
        "print(delta_t)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "d7c85e24",
      "metadata": {
        "id": "d7c85e24"
      },
      "source": [
        "<div class=\"alert alert-block alert-warning\"><p><b>Explanation:</b> See the figure above for an illustration of how Delta T is calculated.</p></div>"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "75aebd4f",
      "metadata": {
        "id": "75aebd4f"
      },
      "source": [
        "- Now we'll calculate a second pulse wave feature, the aging index:"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "id": "75a10857",
      "metadata": {
        "id": "75a10857",
        "outputId": "f491f4f1-0806-422b-dbf9-0a7d8af8f5c3",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Values of Aging Index:\n",
            "[-0.02245078 -0.02799722 -0.02702002 -0.02655158 -0.02260101 -0.02323702\n",
            " -0.02802546 -0.02488352 -0.02136646 -0.02658707 -0.02588554 -0.01917339\n",
            " -0.02529637 -0.02495559 -0.02405006 -0.02754274 -0.02019755 -0.02162308\n",
            " -0.02025896 -0.02483208 -0.02147618 -0.02077676]\n"
          ]
        }
      ],
      "source": [
        "agi = np.zeros(len(fidp[\"dia\"]))\n",
        "for beat_no in range(len(fidp[\"dia\"])):\n",
        "    agi[beat_no] = (fidp[\"bmag2d\"][beat_no]-fidp[\"cmag2d\"][beat_no]-fidp[\"dmag2d\"][beat_no]-fidp[\"emag2d\"][beat_no])/fs\n",
        "print(\"Values of Aging Index:\")\n",
        "print(agi)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "9dc4763b",
      "metadata": {
        "id": "9dc4763b"
      },
      "source": [
        "<div class=\"alert alert-block alert-info\"><p><b>Question:</b> Can you implement any more pulse wave features (e.g. 'CT')?</p></div>"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "c0ad49fc",
      "metadata": {
        "id": "c0ad49fc"
      },
      "source": [
        "---\n",
        "## Beat Detection Functions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "id": "99852646",
      "metadata": {
        "tags": [
          "hide-input"
        ],
        "id": "99852646"
      },
      "outputs": [],
      "source": [
        "import scipy.signal as sp\n",
        "import numpy as np\n",
        "\n",
        "def pulse_detect(x,fs,w,alg):\n",
        "    \"\"\"\n",
        "    Description: Pulse detection and correction from pulsatile signals\n",
        "    Inputs:  x, array with pulsatile signal [user defined units]\n",
        "             fs, sampling rate of signal [Hz]\n",
        "             w, window length for analysis [s]\n",
        "             alg, string with the name of the algorithm to apply ['heartpy','d2max','upslopes','delineator']\n",
        "    Outputs: ibis, location of cardiac cycles as detected by the selected algorithm [number of samples]\n",
        "\n",
        "    Algorithms:       1: HeartPy (van Gent et al, 2019, DOI: 10.1016/j.trf.2019.09.015)\n",
        "                      2: 2nd derivative maxima (Elgendi et al, 2013, DOI: 10.1371/journal.pone.0076585)\n",
        "                      3: Systolic upslopes (Arguello Prada and Serna Maldonado, 2018,\n",
        "                         DOI: 10.1080/03091902.2019.1572237)\n",
        "                      4: Delineator (Li et al, 2010, DOI: 10.1109/TBME.2005.855725)\n",
        "    Fiducial points:  1: Systolic peak (pks)\n",
        "                      2: Onset, as the minimum before the systolic peak (ons)\n",
        "                      3: Onset, using the tangent intersection method (ti)\n",
        "                      4: Diastolic peak (dpk)\n",
        "                      5: Maximum slope (m1d)\n",
        "                      6: a point from second derivative PPG (a2d)\n",
        "                      7: b point from second derivative PPG (b2d)\n",
        "                      8: c point from second derivative PPG (c2d)\n",
        "                      9: d point from second derivative PPG (d2d)\n",
        "                      10: e point from second derivative PPG (e2d)\n",
        "                      11: p1 from the third derivative PPG (p1)\n",
        "                      12: p2 from the third derivative PPG (p2)\n",
        "\n",
        "    Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
        "\n",
        "    Version: 1.0 - June 2022\n",
        "\n",
        "    Developed by: Elisa Mejía-Mejía\n",
        "                   City, University of London\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    # Check selected algorithm\n",
        "    pos_alg = ['heartpy','d2max','upslopes','delineator']\n",
        "    if not(alg in pos_alg):\n",
        "        print('Unknown algorithm determined. Using D2max as default')\n",
        "        alg = 'd2max'\n",
        "\n",
        "    # Pre-processing of signal\n",
        "    x_d = sp.detrend(x)\n",
        "    sos = sp.butter(10, [0.5, 10], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
        "    x_f = sp.sosfiltfilt(sos, x_d)\n",
        "\n",
        "    # Peak detection in windows of length w\n",
        "    n_int = np.floor(len(x_f)/(w*fs))\n",
        "    for i in range(int(n_int)):\n",
        "        start = i*fs*w\n",
        "        stop = (i + 1)*fs*w - 1\n",
        "        # print('Start: ' + str(start) + ', stop: ' + str(stop) + ', fs: ' + str(fs))\n",
        "        aux = x_f[range(start,stop)]\n",
        "        if alg == 'heartpy':\n",
        "            locs = heartpy(aux,fs,40,180,5)\n",
        "        elif alg == 'd2max':\n",
        "            locs = d2max(aux,fs)\n",
        "        elif alg == 'upslopes':\n",
        "            locs = upslopes(aux)\n",
        "        elif alg == 'delineator':\n",
        "            locs = delineator(aux,fs)\n",
        "        locs = locs + start\n",
        "        if i == 0:\n",
        "            ibis = locs\n",
        "        else:\n",
        "            ibis = np.append(ibis,locs)\n",
        "    if n_int*fs*w != len(x_f):\n",
        "        start = stop + 1\n",
        "        stop = len(x_f)\n",
        "        aux = x_f[range(start,stop)]\n",
        "        if len(aux) > 20:\n",
        "            if alg == 'heartpy':\n",
        "                locs = heartpy(aux,fs,40,180,5)\n",
        "            elif alg == 'd2max':\n",
        "                locs = d2max(aux,fs)\n",
        "            elif alg == 'upslopes':\n",
        "                locs = upslopes(aux)\n",
        "            elif alg == 'delineator':\n",
        "                locs = delineator(aux,fs)\n",
        "            locs = locs + start\n",
        "            ibis = np.append(ibis,locs)\n",
        "    ind, = np.where(ibis <= len(x_f))\n",
        "    ibis = ibis[ind]\n",
        "\n",
        "    ibis = peak_correction(x,ibis,fs,20,5,[0.5, 1.5])\n",
        "\n",
        "    #fig = plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.plot(x_d)\n",
        "    #plt.plot(x_f)\n",
        "    #plt.scatter(ibis,x_f[ibis],marker = 'o',color = 'red')\n",
        "    #plt.scatter(ibis,x[ibis],marker = 'o',color = 'red')\n",
        "\n",
        "    return ibis\n",
        "\n",
        "def peak_correction(x,locs,fs,t,stride,th_len):\n",
        "    \"\"\"\n",
        "    Correction of peaks detected from pulsatile signals\n",
        "\n",
        "    Inputs:   x, pulsatile signal [user defined units]\n",
        "              locs, location of the detected interbeat intervals [number of samples]\n",
        "              fs, sampling rate [Hz]\n",
        "              t, duration of intervals for the correction [s]\n",
        "              stride, stride between consecutive intervals for the correction [s]\n",
        "              th_len, array with the percentage of lower and higher thresholds for comparing the duration of IBIs\n",
        "              [proportions]\n",
        "    Outputs:  ibis, array with the corrected points related to the start of the inter-beat intervals [number of samples]\n",
        "\n",
        "    Developed by:  Elisa Mejía Mejía\n",
        "                   City, University of London\n",
        "    Version:       1.0 -   June, 2022\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    #fig = plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.scatter(locs,x[locs],marker = 'o',color = 'red', label = 'Original')\n",
        "    #plt.title('Peak correction')\n",
        "\n",
        "    # Correction of long and short IBIs\n",
        "    len_window = np.round(t*fs)\n",
        "    #print('Window length: ' + str(len_window))\n",
        "    first_i = 0\n",
        "    second_i = len_window - 1\n",
        "    while second_i < len(x):\n",
        "        ind1, = np.where(locs >= first_i)\n",
        "        ind2, = np.where(locs <= second_i)\n",
        "        ind = np.intersect1d(ind1, ind2)\n",
        "\n",
        "        win = locs[ind]\n",
        "        dif = np.diff(win)\n",
        "        #print('Indices: ' + str(ind) + ', locs: ' + str(locs[ind]) + ', dif: ' + str(dif))\n",
        "\n",
        "        th_dif = np.zeros(2)\n",
        "        th_dif[0] = th_len[0]*np.median(dif)\n",
        "        th_dif[1] = th_len[1]*np.median(dif)\n",
        "\n",
        "        th_amp = np.zeros(2)\n",
        "        th_amp[0] = 0.75*np.median(x[win])\n",
        "        th_amp[1] = 1.25*np.median(x[win])\n",
        "        #print('Length thresholds: ' + str(th_dif) + ', amplitude thresholds: ' + str(th_amp))\n",
        "\n",
        "        j = 0\n",
        "        while j < len(dif):\n",
        "            if dif[j] <= th_dif[0]:\n",
        "                if j == 0:\n",
        "                    opt = np.append(win[j], win[j + 1])\n",
        "                else:\n",
        "                    opt = np.append(win[j], win[j + 1]) - win[j - 1]\n",
        "                print('Optional: ' + str(opt))\n",
        "                dif_abs = np.abs(opt - np.median(dif))\n",
        "                min_val = np.min(dif_abs)\n",
        "                ind_min, = np.where(dif_abs == min_val)\n",
        "                print('Minimum: ' + str(min_val) + ', index: ' + str(ind_min))\n",
        "                if ind_min == 0:\n",
        "                    print('Original window: ' + str(win), end = '')\n",
        "                    win = np.delete(win, win[j + 1])\n",
        "                    print(', modified window: ' + str(win))\n",
        "                else:\n",
        "                    print('Original window: ' + str(win), end = '')\n",
        "                    win = np.delete(win, win[j])\n",
        "                    print(', modified window: ' + str(win))\n",
        "                dif = np.diff(win)\n",
        "            elif dif[j] >= th_dif[1]:\n",
        "                aux_x = x[win[j]:win[j + 1]]\n",
        "                locs_pks, _ = sp.find_peaks(aux_x)\n",
        "                #fig = plt.figure()\n",
        "                #plt.plot(aux_x)\n",
        "                #plt.scatter(locs_pks,aux_x[locs_pks],marker = 'o',color = 'red')\n",
        "\n",
        "                locs_pks = locs_pks + win[j]\n",
        "                ind1, = np.where(x[locs_pks] >= th_amp[0])\n",
        "                ind2, = np.where(x[locs_pks] <= th_amp[1])\n",
        "                ind = np.intersect1d(ind1, ind2)\n",
        "                locs_pks = locs_pks[ind]\n",
        "                #print('Locations: ' + str(locs_pks))\n",
        "\n",
        "                if len(locs_pks) != 0:\n",
        "                    opt = locs_pks - win[j]\n",
        "\n",
        "                    dif_abs = np.abs(opt - np.median(dif))\n",
        "                    min_val = np.min(dif_abs)\n",
        "                    ind_min, = np.where(dif_abs == min_val)\n",
        "\n",
        "                    win = np.append(win, locs_pks[ind_min])\n",
        "                    win = np.sort(win)\n",
        "                    dif = np.diff(win)\n",
        "                    j = j + 1\n",
        "                else:\n",
        "                    opt = np.round(win[j] + np.median(dif))\n",
        "                    if opt < win[j + 1]:\n",
        "                        win = np.append(win, locs_pks[ind_min])\n",
        "                        win = np.sort(win)\n",
        "                        dif = np.diff(win)\n",
        "                        j = j + 1\n",
        "                    else:\n",
        "                        j = j + 1\n",
        "            else:\n",
        "                j = j + 1\n",
        "\n",
        "        locs = np.append(win, locs)\n",
        "        locs = np.sort(locs)\n",
        "\n",
        "        first_i = first_i + stride*fs - 1\n",
        "        second_i = second_i + stride*fs - 1\n",
        "\n",
        "    dif = np.diff(locs)\n",
        "    dif = np.append(0, dif)\n",
        "    ind, = np.where(dif != 0)\n",
        "    locs = locs[ind]\n",
        "\n",
        "    #plt.scatter(locs,x[locs],marker = 'o',color = 'green', label = 'After length correction')\n",
        "\n",
        "    # Correction of points that are not peaks\n",
        "    i = 0\n",
        "    pre_loc = 0\n",
        "    while i < len(locs):\n",
        "        if locs[i] == 0:\n",
        "            locs = np.delete(locs, locs[i])\n",
        "        elif locs[i] == len(x):\n",
        "            locs = np.delete(locs, locs[i])\n",
        "        else:\n",
        "            #print('Previous: ' + str(x[locs[i] - 1]) + ', actual: ' + str(x[locs[i]]) + ', next: ' + str(x[locs[i] + 1]))\n",
        "            cond = (x[locs[i]] >= x[locs[i] - 1]) and (x[locs[i]] >= x[locs[i] + 1])\n",
        "            #print('Condition: ' + str(cond))\n",
        "            if cond:\n",
        "                i = i + 1\n",
        "            else:\n",
        "                if locs[i] == pre_loc:\n",
        "                    i = i + 1\n",
        "                else:\n",
        "                    if i == 0:\n",
        "                        aux = x[0:locs[i + 1] - 1]\n",
        "                        aux_loc = locs[i] - 1\n",
        "                        aux_start = 0\n",
        "                    elif i == len(locs) - 1:\n",
        "                        aux = x[locs[i - 1]:len(x) - 1]\n",
        "                        aux_loc = locs[i] - locs[i - 1]\n",
        "                        aux_start = locs[i - 1]\n",
        "                    else:\n",
        "                        aux = x[locs[i - 1]:locs[i + 1]]\n",
        "                        aux_loc = locs[i] - locs[i - 1]\n",
        "                        aux_start = locs[i - 1]\n",
        "                    #print('i ' + str(i) + ' out of ' + str(len(locs)) + ', aux length: ' + str(len(aux)) +\n",
        "                    #      ', location: ' + str(aux_loc))\n",
        "                    #print('Locs i - 1: ' + str(locs[i - 1]) + ', locs i: ' + str(locs[i]) + ', locs i + 1: ' + str(locs[i + 1]))\n",
        "\n",
        "                    pre = find_closest_peak(aux, aux_loc, 'backward')\n",
        "                    pos = find_closest_peak(aux, aux_loc, 'forward')\n",
        "                    #print('Previous: ' + str(pre) + ', next: ' + str(pos) + ', actual: ' + str(aux_loc))\n",
        "\n",
        "                    ibi_pre = np.append(pre - 1, len(aux) - pre)\n",
        "                    ibi_pos = np.append(pos - 1, len(aux) - pos)\n",
        "                    ibi_act = np.append(aux_loc - 1, len(aux) - aux_loc)\n",
        "                    #print('Previous IBIs: ' + str(ibi_pre) + ', next IBIs: ' + str(ibi_pos) +\n",
        "                    #      ', actual IBIs: ' + str(ibi_act))\n",
        "\n",
        "                    dif_pre = np.abs(ibi_pre - np.mean(np.diff(locs)))\n",
        "                    dif_pos = np.abs(ibi_pos - np.mean(np.diff(locs)))\n",
        "                    dif_act = np.abs(ibi_act - np.mean(np.diff(locs)))\n",
        "                    #print('Previous DIF: ' + str(dif_pre) + ', next DIF: ' + str(dif_pos) +\n",
        "                    #      ', actual DIF: ' + str(dif_act))\n",
        "\n",
        "                    avgs = [np.mean(dif_pre), np.mean(dif_pos), np.mean(dif_act)]\n",
        "                    min_avg = np.min(avgs)\n",
        "                    ind, = np.where(min_avg == avgs)\n",
        "                    #print('Averages: ' + str(avgs) + ', min index: ' + str(ind))\n",
        "                    if len(ind) != 0:\n",
        "                        ind = ind[0]\n",
        "\n",
        "                    if ind == 0:\n",
        "                        locs[i] = pre + aux_start - 1\n",
        "                    elif ind == 1:\n",
        "                        locs[i] = pos + aux_start - 1\n",
        "                    elif ind == 2:\n",
        "                        locs[i] = aux_loc + aux_start - 1\n",
        "                    i = i + 1\n",
        "\n",
        "    #plt.scatter(locs,x[locs],marker = 'o',color = 'yellow', label = 'After not-peak correction')\n",
        "\n",
        "    # Correction of peaks according to amplitude\n",
        "    len_window = np.round(t*fs)\n",
        "    #print('Window length: ' + str(len_window))\n",
        "    keep = np.empty(0)\n",
        "    first_i = 0\n",
        "    second_i = len_window - 1\n",
        "    while second_i < len(x):\n",
        "        ind1, = np.where(locs >= first_i)\n",
        "        ind2, = np.where(locs <= second_i)\n",
        "        ind = np.intersect1d(ind1, ind2)\n",
        "        win = locs[ind]\n",
        "        if np.median(x[win]) > 0:\n",
        "            th_amp_low = 0.5*np.median(x[win])\n",
        "            th_amp_high = 3*np.median(x[win])\n",
        "        else:\n",
        "            th_amp_low = -3*np.median(x[win])\n",
        "            th_amp_high = 1.5*np.median(x[win])\n",
        "        ind1, = np.where(x[win] >= th_amp_low)\n",
        "        ind2, = np.where(x[win] <= th_amp_high)\n",
        "        aux_keep = np.intersect1d(ind1,ind2)\n",
        "        keep = np.append(keep, aux_keep)\n",
        "\n",
        "        first_i = second_i + 1\n",
        "        second_i = second_i + stride*fs - 1\n",
        "\n",
        "    if len(keep) != 0:\n",
        "        keep = np.unique(keep)\n",
        "        locs = locs[keep.astype(int)]\n",
        "\n",
        "    #plt.scatter(locs,x[locs],marker = 'o',color = 'purple', label = 'After amplitude correction')\n",
        "    #plt.legend()\n",
        "\n",
        "    return locs\n",
        "\n",
        "def find_closest_peak(x, loc, dir_search):\n",
        "    \"\"\"\n",
        "    Finds the closest peak to the initial location in x\n",
        "\n",
        "    Inputs:   x, signal of interest [user defined units]\n",
        "              loc, initial location [number of samples]\n",
        "              dir_search, direction of search ['backward','forward']\n",
        "    Outputs:  pos, location of the first peak detected in specified direction [number of samples]\n",
        "\n",
        "    Developed by:  Elisa Mejía Mejía\n",
        "                   City, University of London\n",
        "    Version:       1.0 -   June, 2022\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    pos = -1\n",
        "    if dir_search == 'backward':\n",
        "        i = loc - 2\n",
        "        while i > 0:\n",
        "            if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
        "                pos = i\n",
        "                i = 0\n",
        "            else:\n",
        "                i = i - 1\n",
        "        if pos == -1:\n",
        "            pos = loc\n",
        "    elif dir_search == 'forward':\n",
        "        i = loc + 1\n",
        "        while i < len(x) - 1:\n",
        "            if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
        "                pos = i\n",
        "                i = len(x)\n",
        "            else:\n",
        "                i = i + 1\n",
        "        if pos == -1:\n",
        "            pos = loc\n",
        "\n",
        "    return pos\n",
        "\n",
        "def seek_local(x, start, end):\n",
        "    val_min = x[start]\n",
        "    val_max = x[start]\n",
        "\n",
        "    ind_min = start\n",
        "    ind_max = start\n",
        "\n",
        "    for j in range(start, end):\n",
        "        if x[j] > val_max:\n",
        "            val_max = x[j]\n",
        "            ind_max = j\n",
        "        elif x[j] < val_min:\n",
        "            val_min = x[j]\n",
        "            ind_min = j\n",
        "\n",
        "    return val_min, ind_min, val_max, ind_max\n",
        "\n",
        "def heartpy(x, fs, min_ihr, max_ihr, w):\n",
        "    \"\"\"\n",
        "    Detects inter-beat intervals using HeartPy\n",
        "    Citation: van Gent P, Farah H, van Nes N, van Arem B (2019) Heartpy: A novel heart rate algorithm\n",
        "              for the analysis of noisy signals. Transp Res Part F, vol. 66, pp. 368-378. DOI: 10.1016/j.trf.2019.09.015\n",
        "\n",
        "    Inputs:   x, pulsatile signal [user defined units]\n",
        "              fs, sampling rate [Hz]\n",
        "              min_ihr, minimum value of instantaneous heart rate to be accepted [bpm]\n",
        "              max_ihr, maximum value of instantaneous heart rate to be accepted [bpm]\n",
        "              w, length of segments for correction of peaks [s]\n",
        "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
        "\n",
        "    Developed by:  Elisa Mejía Mejía\n",
        "                   City, University of London\n",
        "    Version:       1.0 -   June, 2022\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    # Identification of peaks\n",
        "    is_roi = 0\n",
        "    n_rois = 0\n",
        "    pos_pks = np.empty(0).astype(int)\n",
        "    locs = np.empty(0).astype(int)\n",
        "\n",
        "    len_ma = int(np.round(0.75*fs))\n",
        "    #print(len_ma)\n",
        "    sig = np.append(x[0]*np.ones(len_ma), x)\n",
        "    sig = np.append(sig, x[-1]*np.ones(len_ma))\n",
        "\n",
        "    i = len_ma\n",
        "    while i < len(sig) - len_ma:\n",
        "        ma = np.mean(sig[i - len_ma:i + len_ma - 1])\n",
        "        #print(len(sig[i - len_ma:i + len_ma - 1]),ma)\n",
        "\n",
        "        # If it is the beginning of a new ROI:\n",
        "        if is_roi == 0 and sig[i] >= ma:\n",
        "            is_roi = 1\n",
        "            n_rois = n_rois + 1\n",
        "            #print('New ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
        "            # If it is a peak:\n",
        "            if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
        "                pos_pks = np.append(pos_pks, int(i))\n",
        "                #print('Possible peaks: ' + str(pos_pks))\n",
        "\n",
        "        # If it is part of a ROI which is not over:\n",
        "        elif is_roi == 1 and sig[i] > ma:\n",
        "            #print('Actual ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
        "            # If it is a peak:\n",
        "            if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
        "                pos_pks = np.append(pos_pks, int(i))\n",
        "                #print('Possible peaks: ' + str(pos_pks))\n",
        "\n",
        "        # If the ROI is over or the end of the signal has been reached:\n",
        "        elif is_roi == 1 and (sig[i] < ma or i == (len(sig) - len_ma)):\n",
        "            #print('End of ROI ---' + str(n_rois) + ' @ ' + str(i) + '. Pos pks: ' + str(pos_pks))\n",
        "            is_roi = 0 # Lowers flag\n",
        "\n",
        "            # If it is the end of the first ROI:\n",
        "            if n_rois == 1:\n",
        "                # If at least one peak has been found:\n",
        "                if len(pos_pks) != 0:\n",
        "                    # Determines the location of the maximum peak:\n",
        "                    max_pk = np.max(sig[pos_pks])\n",
        "                    ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
        "                    #print('First ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
        "                    #      ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
        "                    # The maximum peak is added to the list:\n",
        "                    locs = np.append(locs, pos_pks[ind])\n",
        "                    #print('Locations: ' + str(locs))\n",
        "                # If no peak was found:\n",
        "                else:\n",
        "                    # Counter for ROIs is reset to previous value:\n",
        "                    n_rois = n_rois - 1\n",
        "\n",
        "            # If it is the end of the second ROI:\n",
        "            elif n_rois == 2:\n",
        "                # If at least one peak has been found:\n",
        "                if len(pos_pks) != 0:\n",
        "                    # Measures instantantaneous HR of found peaks with respect to the previous peak:\n",
        "                    ihr = 60/((pos_pks - locs[-1])/fs)\n",
        "                    good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)\n",
        "                    #print('Second ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) +\n",
        "                    #      ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))\n",
        "                    pos_pks = pos_pks[good_ihr].astype(int)\n",
        "\n",
        "                    # If at least one peak is between HR limits:\n",
        "                    if len(pos_pks) != 0:\n",
        "                        # Determines the location of the maximum peak:\n",
        "                        max_pk = np.max(sig[pos_pks])\n",
        "                        ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
        "                        #print('Second ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
        "                        #  ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
        "                        # The maximum peak is added to the list:\n",
        "                        locs = np.append(locs, pos_pks[ind])\n",
        "                        #print('Locations: ' + str(locs))\n",
        "                # If no peak was found:\n",
        "                else:\n",
        "                    # Counter for ROIs is reset to previous value:\n",
        "                    n_rois = n_rois - 1\n",
        "\n",
        "            # If it is the end of the any further ROI:\n",
        "            else:\n",
        "                # If at least one peak has been found:\n",
        "                if len(pos_pks) != 0:\n",
        "                    # Measures instantantaneous HR of found peaks with respect to the previous peak:\n",
        "                    ihr = 60/((pos_pks - locs[-1])/fs)\n",
        "                    good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)\n",
        "                    #print('Third ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) +\n",
        "                    #      ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))\n",
        "                    pos_pks = pos_pks[good_ihr].astype(int)\n",
        "\n",
        "                    # If at least one peak is between HR limits:\n",
        "                    if len(pos_pks) != 0:\n",
        "                        # Calculates SDNN with the possible peaks on the ROI:\n",
        "                        sdnn = np.zeros(len(pos_pks))\n",
        "                        for j in range(len(pos_pks)):\n",
        "                            sdnn[j] = np.std(np.append(locs/fs, pos_pks[j]/fs))\n",
        "                        # Determines the new peak as that one with the lowest SDNN:\n",
        "                        min_pk = np.min(sdnn)\n",
        "                        ind, = np.where(min_pk == np.min(sdnn))\n",
        "                        #print('Third ROI: (1) Min SDNN Peak: ' + str(min_pk) + ', amplitudes: ' + str(sig[pos_pks]) +\n",
        "                        #  ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
        "                        locs = np.append(locs, pos_pks[ind])\n",
        "                        #print('Locations: ' + str(locs))\n",
        "                # If no peak was found:\n",
        "                else:\n",
        "                    # Counter for ROIs is reset to previous value:\n",
        "                    n_rois = n_rois - 1\n",
        "\n",
        "            # Resets possible peaks for next ROI:\n",
        "            pos_pks = np.empty(0)\n",
        "\n",
        "        i = i + 1;\n",
        "\n",
        "    locs = locs - len_ma\n",
        "\n",
        "    # Correction of peaks\n",
        "    c_locs = np.empty(0)\n",
        "    n_int = np.floor(len(x)/(w*fs))\n",
        "    for i in range(int(n_int)):\n",
        "        ind1, = np.where(locs >= i*w*fs)\n",
        "        #print('Locs >= ' + str((i)*w*fs) + ': ' + str(locs[ind1]))\n",
        "        ind2, = np.where(locs < (i + 1)*w*fs)\n",
        "        #print('Locs < ' + str((i + 1)*w*fs) + ': ' + str(locs[ind2]))\n",
        "        ind = np.intersect1d(ind1, ind2)\n",
        "        #print('Larger and lower than locs: ' + str(locs[ind]))\n",
        "        int_locs = locs[ind]\n",
        "\n",
        "        if i == 0:\n",
        "            aux_ibis = np.diff(int_locs)\n",
        "        else:\n",
        "            ind, = np.where(locs >= i*w*fs)\n",
        "            last = locs[ind[0] - 1]\n",
        "            aux_ibis = np.diff(np.append(last, int_locs))\n",
        "        avg_ibis = np.mean(aux_ibis)\n",
        "        th = np.append((avg_ibis - 0.3*avg_ibis), (avg_ibis + 0.3*avg_ibis))\n",
        "        ind1, = np.where(aux_ibis > th[0])\n",
        "        #print('Ind1: ' + str(ind1))\n",
        "        ind2, = np.where(aux_ibis < th[1])\n",
        "        #print('Ind2: ' + str(ind2))\n",
        "        ind = np.intersect1d(ind1, ind2)\n",
        "        #print('Ind: ' + str(ind))\n",
        "\n",
        "        c_locs = np.append(c_locs, int_locs[ind]).astype(int)\n",
        "        print(c_locs)\n",
        "\n",
        "    #fig = plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.plot(sig)\n",
        "    #plt.scatter(locs,x[locs],marker = 'o',color = 'red')\n",
        "    #if len(c_locs) != 0:\n",
        "        #plt.scatter(c_locs,x[c_locs],marker = 'o',color = 'blue')\n",
        "\n",
        "    if len(c_locs) != 0:\n",
        "        ibis = c_locs\n",
        "    else:\n",
        "        ibis = locs\n",
        "\n",
        "    return ibis\n",
        "\n",
        "def d2max(x, fs):\n",
        "    \"\"\"\n",
        "    Detects inter-beat intervals using D2Max\n",
        "    Citation: Elgendi M, Norton I, Brearley M, Abbott D, Schuurmans D (2013) Systolic Peak Detection in Acceleration\n",
        "              Photoplethysmograms Measured from Emergency Responders in Tropical Conditions. PLoS ONE, vol. 8, no. 10,\n",
        "              pp. e76585. DOI: 10.1371/journal.pone.0076585\n",
        "\n",
        "    Inputs:   x, pulsatile signal [user defined units]\n",
        "              fs, sampling rate [Hz]\n",
        "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
        "\n",
        "    Developed by:  Elisa Mejía Mejía\n",
        "                   City, University of London\n",
        "    Version:       1.0 -   June, 2022\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    # Bandpass filter\n",
        "    if len(x) < 4098:\n",
        "        z_fill = np.zeros(4098 - len(x) + 1)\n",
        "        x_z = np.append(x, z_fill)\n",
        "    sos = sp.butter(10, [0.5, 8], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
        "    x_f = sp.sosfiltfilt(sos, x_z)\n",
        "\n",
        "    # Signal clipping\n",
        "    ind, = np.where(x_f < 0)\n",
        "    x_c = x_f\n",
        "    x_c[ind] = 0\n",
        "\n",
        "    # Signal squaring\n",
        "    x_s = x_c**2\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.plot(x_z)\n",
        "    #plt.plot(x_f)\n",
        "    #plt.plot(x_c)\n",
        "    #plt.plot(x_s)\n",
        "\n",
        "    # Blocks of interest\n",
        "    w1 = (111e-3)*fs\n",
        "    w1 = int(2*np.floor(w1/2) + 1)\n",
        "    b = (1/w1)*np.ones(w1)\n",
        "    ma_pk = sp.filtfilt(b,1,x_s)\n",
        "\n",
        "    w2 = (667e-3)*fs\n",
        "    w2 = int(2*np.floor(w2/2) + 1)\n",
        "    b = (1/w2)*np.ones(w1)\n",
        "    ma_bpm = sp.filtfilt(b,1,x_s)\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x_s/np.max(x_s))\n",
        "    #plt.plot(ma_pk/np.max(ma_pk))\n",
        "    #plt.plot(ma_bpm/np.max(ma_bpm))\n",
        "\n",
        "    # Thresholding\n",
        "    alpha = 0.02*np.mean(ma_pk)\n",
        "    th_1 = ma_bpm + alpha\n",
        "    th_2 = w1\n",
        "    boi = (ma_pk > th_1).astype(int)\n",
        "\n",
        "    blocks_init, = np.where(np.diff(boi) > 0)\n",
        "    blocks_init = blocks_init + 1\n",
        "    blocks_end, = np.where(np.diff(boi) < 0)\n",
        "    blocks_end = blocks_end + 1\n",
        "    if blocks_init[0] > blocks_end[0]:\n",
        "        blocks_init = np.append(1, blocks_init)\n",
        "    if blocks_init[-1] > blocks_end[-1]:\n",
        "        blocks_end = np.append(blocks_end, len(x_s))\n",
        "    #print('Initial locs BOI: ' + str(blocks_init))\n",
        "    #print('Final locs BOI: ' + str(blocks_end))\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x_s[range(len(x))]/np.max(x_s))\n",
        "    #plt.plot(boi[range(len(x))])\n",
        "\n",
        "    # Search for peaks inside BOIs\n",
        "    len_blks = np.zeros(len(blocks_init))\n",
        "    ibis = np.zeros(len(blocks_init))\n",
        "    for i in range(len(blocks_init)):\n",
        "        ind, = np.where(blocks_end > blocks_init[i])\n",
        "        ind = ind[0]\n",
        "        len_blks[i] = blocks_end[ind] - blocks_init[i]\n",
        "        if len_blks[i] >= th_2:\n",
        "            aux = x[blocks_init[i]:blocks_end[ind]]\n",
        "            if len(aux) != 0:\n",
        "                max_val = np.max(aux)\n",
        "                max_ind, = np.where(max_val == aux)\n",
        "                ibis[i] = max_ind + blocks_init[i] - 1\n",
        "\n",
        "    ind, = np.where(len_blks < th_2)\n",
        "    if len(ind) != 0:\n",
        "        for i in range(len(ind)):\n",
        "            boi[blocks_init[i]:blocks_end[i]] = 0\n",
        "    ind, = np.where(ibis == 0)\n",
        "    ibis = (np.delete(ibis, ind)).astype(int)\n",
        "\n",
        "    #plt.plot(boi[range(len(x))])\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
        "\n",
        "    return ibis\n",
        "\n",
        "def upslopes(x):\n",
        "    \"\"\"\n",
        "    Detects inter-beat intervals using Upslopes\n",
        "    Citation: Arguello Prada EJ, Serna Maldonado RD (2018) A novel and low-complexity peak detection algorithm for\n",
        "              heart rate estimation from low-amplitude photoplethysmographic (PPG) signals. J Med Eng Technol, vol. 42,\n",
        "              no. 8, pp. 569-577. DOI: 10.1080/03091902.2019.1572237\n",
        "\n",
        "    Inputs:   x, pulsatile signal [user defined units]\n",
        "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
        "\n",
        "    Developed by:  Elisa Mejía Mejía\n",
        "                   City, University of London\n",
        "    Version:       1.0 -   June, 2022\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    # Peak detection\n",
        "    th = 6\n",
        "    pks = np.empty(0)\n",
        "    pos_pk = np.empty(0)\n",
        "    pos_pk_b = 0\n",
        "    n_pos_pk = 0\n",
        "    n_up = 0\n",
        "\n",
        "    for i in range(1, len(x)):\n",
        "        if x[i] > x[i - 1]:\n",
        "            n_up = n_up + 1\n",
        "        else:\n",
        "            if n_up > th:\n",
        "                pos_pk = np.append(pos_pk, i)\n",
        "                pos_pk_b = 1\n",
        "                n_pos_pk = n_pos_pk + 1\n",
        "                n_up_pre = n_up\n",
        "            else:\n",
        "                pos_pk = pos_pk.astype(int)\n",
        "                #print('Possible peaks: ' + str(pos_pk) + ', number of peaks: ' + str(n_pos_pk))\n",
        "                if pos_pk_b == 1:\n",
        "                    if x[i - 1] > x[pos_pk[n_pos_pk - 1]]:\n",
        "                        pos_pk[n_pos_pk - 1] = i - 1\n",
        "                    else:\n",
        "                        pks = np.append(pks, pos_pk[n_pos_pk - 1])\n",
        "                    th = 0.6*n_up_pre\n",
        "                    pos_pk_b = 0\n",
        "            n_up = 0\n",
        "    ibis = pks.astype(int)\n",
        "    #print(ibis)\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
        "\n",
        "    return ibis\n",
        "\n",
        "def delineator(x, fs):\n",
        "    \"\"\"\n",
        "    Detects inter-beat intervals using Delineator\n",
        "    Citation: Li BN, Dong MC, Vai MI (2010) On an automatic delineator for arterial blood pressure waveforms. Biomed\n",
        "    Signal Process Control, vol. 5, no. 1, pp. 76-81. DOI: 10.1016/j.bspc.2009.06.002\n",
        "\n",
        "    Inputs:   x, pulsatile signal [user defined units]\n",
        "              fs, sampling rate [Hz]\n",
        "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
        "\n",
        "    Developed by:  Elisa Mejía Mejía\n",
        "                   City, University of London\n",
        "    Version:       1.0 -   June, 2022\n",
        "\n",
        "    \"\"\"\n",
        "\n",
        "    # Lowpass filter\n",
        "    od = 3\n",
        "    sos = sp.butter(od, 25, btype = 'low', analog = False, output = 'sos', fs = fs)\n",
        "    x_f = sp.sosfiltfilt(sos, x)\n",
        "    x_m = 1000*x_f\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x)\n",
        "    #plt.plot(x_f)\n",
        "    #plt.plot(x_m)\n",
        "\n",
        "    # Moving average\n",
        "    n = 5\n",
        "    b = (1/n)*np.ones(n)\n",
        "    x_ma = sp.filtfilt(b,1,x_m)\n",
        "\n",
        "    # Compute differentials\n",
        "    dif = np.diff(x_ma)\n",
        "    dif = 100*np.append(dif[0], dif)\n",
        "    dif_ma = sp.filtfilt(b,1,dif)\n",
        "\n",
        "    #plt.figure()\n",
        "    #plt.plot(x_ma)\n",
        "    #plt.plot(dif_ma)\n",
        "\n",
        "    # Average thresholds in original signal\n",
        "    x_len = len(x)\n",
        "    if x_len > 12*fs:\n",
        "        n = 10\n",
        "    elif x_len > 7*fs:\n",
        "        n = 5\n",
        "    elif x_len > 4*fs:\n",
        "        n = 2\n",
        "    else:\n",
        "        n = 1\n",
        "    #print(n)\n",
        "\n",
        "    max_min = np.empty(0)\n",
        "    if n > 1:\n",
        "        #plt.figure()\n",
        "        #plt.plot(x_ma)\n",
        "        n_int = np.floor(x_len/(n + 2))\n",
        "        #print('Length of intervals: ' + str(n_int))\n",
        "        for j in range(n):\n",
        "            # Searches for max and min in 1 s intervals\n",
        "            amp_min, ind_min, amp_max, ind_max = seek_local(x_ma, int(j*n_int), int(j*n_int + fs))\n",
        "            #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
        "            #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
        "            max_min = np.append(max_min, (amp_max - amp_min))\n",
        "        max_min_avg = np.mean(max_min)\n",
        "        #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
        "    else:\n",
        "        amp_min, ind_min , amp_max, ind_max = seek_local(x_ma, int(close_win), int(x_len))\n",
        "        #plt.figure()\n",
        "        #plt.plot(x_ma)\n",
        "        #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
        "        #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
        "        max_min_avg = amp_max - amp_min\n",
        "        #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
        "\n",
        "    max_min_lt = 0.4*max_min_avg\n",
        "\n",
        "    # Seek pulse beats by min-max method\n",
        "    step_win = 2*fs       # Window length to look for peaks/onsets\n",
        "    close_win = np.floor(0.1*fs)\n",
        "                          # Value of what is considered too close\n",
        "\n",
        "    pks = np.empty(0)     # Location of peaks\n",
        "    ons = np.empty(0)     # Location of onsets\n",
        "    dic = np.empty(0)     # Location of dicrotic notches\n",
        "\n",
        "    pk_index = -1          # Number of peaks found\n",
        "    on_index = -1          # Number of onsets found\n",
        "    dn_index = -1          # Number of dicrotic notches found\n",
        "\n",
        "    i = int(close_win)    # Initializes counter\n",
        "    while i < x_len:      # Iterates through the signal\n",
        "        #print('i: ' + str(i))\n",
        "        amp_min = x_ma[i] # Gets the initial value for the minimum amplitude\n",
        "        amp_max = x_ma[i] # Gets the initial value for the maximum amplitude\n",
        "\n",
        "        ind = i           # Initializes the temporal location of the index\n",
        "        aux_pks = i       # Initializes the temporal location of the peak\n",
        "        aux_ons = i       # Initializes the temporal location of the onset\n",
        "\n",
        "        # Iterates while ind is lower than the length of the signal\n",
        "        while ind < x_len - 1:\n",
        "            #print('Ind: ' + str(ind))\n",
        "            # Verifies if no peak has been found in 2 seconds\n",
        "            if (ind - i) > step_win:\n",
        "                #print('Peak not found in 2 s')\n",
        "                ind = i   # Refreshes the temporal location of the index\n",
        "                max_min_avg = 0.6*max_min_avg  # Refreshes the threshold for the amplitude\n",
        "                # Verifies if the threshold is lower than the lower limit\n",
        "                if max_min_avg <= max_min_lt:\n",
        "                    max_min_avg = 2.5*max_min_lt # Refreshes the threshold\n",
        "                break\n",
        "\n",
        "            # Verifies if the location is a candidate peak\n",
        "            if (dif_ma[ind - 1]*dif_ma[ind + 1]) <= 0:\n",
        "                #print('There is a candidate peak')\n",
        "                # Determines initial and end points of a window to search for local peaks and onsets\n",
        "                if (ind + 5) < x_len:\n",
        "                    i_stop = ind + 5\n",
        "                else:\n",
        "                    i_stop = x_len - 1\n",
        "                if (ind - 5) >= 0:\n",
        "                    i_start = ind - 5\n",
        "                else:\n",
        "                    i_start = 0\n",
        "\n",
        "                # Checks for artifacts of saturated or signal loss\n",
        "                if (i_stop - ind) >= 5:\n",
        "                    for j in range(ind, i_stop):\n",
        "                        if dif_ma[j] != 0:\n",
        "                            break\n",
        "                    if j == i_stop:\n",
        "                        #print('Artifact')\n",
        "                        break\n",
        "\n",
        "                # Candidate onset\n",
        "                #print('Looking for candidate onsets...')\n",
        "                #plt.figure()\n",
        "                #plt.plot(x_ma)\n",
        "                if dif_ma[i_start] < 0:\n",
        "                    if dif_ma[i_stop] > 0:\n",
        "                        aux_min, ind_min, _, _ = seek_local(x_ma, int(i_start), int(i_stop))\n",
        "                        #plt.scatter(ind_min, aux_min, marker = 'o', color = 'red')\n",
        "                        if np.abs(ind_min - ind) <= 2:\n",
        "                            amp_min = aux_min\n",
        "                            aux_ons = ind_min\n",
        "                #print('Candidate onset: ' + str([ind_min, amp_min]))\n",
        "                # Candidate peak\n",
        "                #print('Looking for candidate peaks...')\n",
        "                if dif_ma[i_start] > 0:\n",
        "                    if dif_ma[i_stop] < 0:\n",
        "                        _, _, aux_max, ind_max = seek_local(x_ma, int(i_start), int(i_stop))\n",
        "                        #plt.scatter(ind_max, aux_max, marker = 'o', color = 'green')\n",
        "                        if np.abs(ind_max - ind) <= 2:\n",
        "                            amp_max = aux_max\n",
        "                            aux_pks = ind_max\n",
        "                #print('Candidate peak: ' + str([ind_max, amp_max]))\n",
        "                # Verifies if the amplitude of the pulse is larger than 0.4 times the mean value:\n",
        "                #print('Pulse amplitude: ' + str(amp_max - amp_min) + ', thresholds: ' +\n",
        "                #      str([0.4*max_min_avg, 2*max_min_avg]))\n",
        "                if (amp_max - amp_min) > 0.4*max_min_avg:\n",
        "                    #print('Expected amplitude of pulse')\n",
        "                    # Verifies if the amplitude of the pulse is lower than 2 times the mean value:\n",
        "                    if (amp_max - amp_min) < 2*max_min_avg:\n",
        "                        #print('Expected duration of pulse')\n",
        "                        if aux_pks > aux_ons:\n",
        "                            #print('Refining onsets...')\n",
        "                            # Refine onsets:\n",
        "                            aux_min = x_ma[aux_ons]\n",
        "                            temp_ons = aux_ons\n",
        "                            for j in range(aux_pks, aux_ons + 1, -1):\n",
        "                                if x_ma[j] < aux_min:\n",
        "                                    aux_min = x_ma[j]\n",
        "                                    temp_ons = j\n",
        "                            amp_min = aux_min\n",
        "                            aux_ons = temp_ons\n",
        "\n",
        "                            # If there is at least one peak found before:\n",
        "                            #print('Number of previous peaks: ' + str(pk_index + 1))\n",
        "                            if pk_index >= 0:\n",
        "                                #print('There were previous peaks')\n",
        "                                #print('Duration of ons to peak interval: ' + str(aux_ons - pks[pk_index]) +\n",
        "                                #     ', threshold: ' + str([3*close_win, step_win]))\n",
        "                                # If the duration of the pulse is too short:\n",
        "                                if (aux_ons - pks[pk_index]) < 3*close_win:\n",
        "                                    #print('Too short interbeat interval')\n",
        "                                    ind = i\n",
        "                                    max_min_avg = 2.5*max_min_lt\n",
        "                                    break\n",
        "                                # If the time difference between consecutive peaks is longer:\n",
        "                                if (aux_pks - pks[pk_index]) > step_win:\n",
        "                                    #print('Too long interbeat interval')\n",
        "                                    pk_index = pk_index - 1\n",
        "                                    on_index = on_index - 1\n",
        "                                    #if dn_index > 0:\n",
        "                                    #    dn_index = dn_index - 1\n",
        "                                # If there are still peaks, add the new peak:\n",
        "                                if pk_index >= 0:\n",
        "                                    #print('There are still previous peaks')\n",
        "                                    pk_index = pk_index + 1\n",
        "                                    on_index = on_index + 1\n",
        "                                    pks = np.append(pks, aux_pks)\n",
        "                                    ons = np.append(ons, aux_ons)\n",
        "                                    #print('Peaks: ' + str(pks))\n",
        "                                    #print('Onsets: ' + str(ons))\n",
        "\n",
        "                                    tf = ons[pk_index] - ons[pk_index - 1]\n",
        "\n",
        "                                    to = np.floor(fs/20)\n",
        "                                    tff = np.floor(0.1*tf)\n",
        "                                    if tff < to:\n",
        "                                        to = tff\n",
        "                                    to = pks[pk_index - 1] + to\n",
        "\n",
        "                                    te = np.floor(fs/20)\n",
        "                                    tff = np.floor(0.5*tf)\n",
        "                                    if tff < te:\n",
        "                                        te = tff\n",
        "                                    te = pks[pk_index - 1] + te\n",
        "\n",
        "                                    #tff = seek_dicrotic(dif_ma[to:te])\n",
        "                                    #if tff == 0:\n",
        "                                    #    tff = te - pks[pk_index - 1]\n",
        "                                    #    tff = np.floor(tff/3)\n",
        "                                    #dn_index = dn_index + 1\n",
        "                                    #dic[dn_index] = to + tff\n",
        "\n",
        "                                    ind = ind + close_win\n",
        "                                    break\n",
        "                            # If it is the first peak:\n",
        "                            if pk_index < 0:\n",
        "                                #print('There were no previous peaks')\n",
        "                                pk_index = pk_index + 1\n",
        "                                on_index = on_index + 1\n",
        "                                pks = np.append(pks, aux_pks)\n",
        "                                ons = np.append(ons, aux_ons)\n",
        "                                #print('Peaks: ' + str(pks))\n",
        "                                #print('Onsets: ' + str(ons))\n",
        "                                ind = ind + close_win\n",
        "                                break\n",
        "\n",
        "            ind = ind + 1\n",
        "        i = int(ind + 1)\n",
        "\n",
        "    if len(pks) == 0:\n",
        "        return -1\n",
        "    else:\n",
        "        x_len = len(pks)\n",
        "        temp_p = np.empty(0)\n",
        "        for i in range(x_len):\n",
        "            temp_p = np.append(temp_p, pks[i] - od)\n",
        "        ttk = temp_p[0]\n",
        "        if ttk < 0:\n",
        "            temp_p[0] = 0\n",
        "        pks = temp_p\n",
        "\n",
        "        x_len = len(ons)\n",
        "        temp_o = np.empty(0)\n",
        "        for i in range(x_len):\n",
        "            temp_o = np.append(temp_o, ons[i] - od)\n",
        "        ttk = temp_o[0]\n",
        "        if ttk < 0:\n",
        "            temp_o[0] = 0\n",
        "        ons = temp_o\n",
        "\n",
        "    pks = pks + 5\n",
        "    ibis = pks.astype(int)\n",
        "\n",
        "    return ibis"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "ebb59cf4",
      "metadata": {
        "id": "ebb59cf4"
      },
      "source": [
        "Now return to the 'Detect beats in the PPG signal' step."
      ]
    },
    {
      "cell_type": "markdown",
      "id": "79f99f24",
      "metadata": {
        "id": "79f99f24"
      },
      "source": [
        "---\n",
        "## Fiducial Point Functions"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "id": "82b8e899",
      "metadata": {
        "tags": [
          "hide-input"
        ],
        "id": "82b8e899"
      },
      "outputs": [],
      "source": [
        "def fiducial_points(x,pks,fs,vis):\n",
        "    \"\"\"\n",
        "    Description: Pulse detection and correction from pulsatile signals\n",
        "    Inputs:  x, array with pulsatile signal [user defined units]\n",
        "             pks, array with the position of the peaks [number of samples]\n",
        "             fs, sampling rate of signal [Hz]\n",
        "             vis, visualisation option [True, False]\n",
        "    Outputs: fidp, dictionary with the positions of several fiducial points for the cardiac cycles [number of samples]\n",
        "    \n",
        "    Fiducial points:  1: Systolic peak (pks)\n",
        "                      2: Onset, as the minimum before the systolic peak (ons)\n",
        "                      3: Onset, using the tangent intersection method (ti) \n",
        "                      4: Diastolic peak (dpk)\n",
        "                      5: Maximum slope (m1d)\n",
        "                      6: a point from second derivative PPG (a2d)\n",
        "                      7: b point from second derivative PPG (b2d)\n",
        "                      8: c point from second derivative PPG (c2d)\n",
        "                      9: d point from second derivative PPG (d2d)\n",
        "                      10: e point from second derivative PPG (e2d)\n",
        "                      11: p1 from the third derivative PPG (p1)    \n",
        "                      12: p2 from the third derivative PPG (p2)\n",
        "    \n",
        "    Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
        "    \n",
        "    Version: 1.0 - June 2022\n",
        "    \n",
        "    Developed by: Elisa Mejía-Mejía\n",
        "                   City, University of London\n",
        "    \n",
        "    Edited by: Peter Charlton (see \"Added by PC\")\n",
        "    \n",
        "    \"\"\"    \n",
        "    # First, second and third derivatives\n",
        "    d1x = sp.savgol_filter(x, 9, 5, deriv = 1) \n",
        "    d2x = sp.savgol_filter(x, 9, 5, deriv = 2) \n",
        "    d3x = sp.savgol_filter(x, 9, 5, deriv = 3) \n",
        "    \n",
        "    #plt.figure()\n",
        "    #plt.plot(x/np.max(x))\n",
        "    #plt.plot(d1x/np.max(d1x))\n",
        "    #plt.plot(d2x/np.max(d2x))\n",
        "    #plt.plot(d3x/np.max(d3x))\n",
        "    \n",
        "    # Search in time series: Onsets between consecutive peaks\n",
        "    ons = np.empty(0)\n",
        "    for i in range(len(pks) - 1):\n",
        "        start = pks[i]\n",
        "        stop = pks[i + 1]\n",
        "        ibi = x[start:stop]\n",
        "        #plt.figure()\n",
        "        #plt.plot(ibi, color = 'black')\n",
        "        aux_ons, = np.where(ibi == np.min(ibi))\n",
        "        ind_ons = aux_ons.astype(int)\n",
        "        ons = np.append(ons, ind_ons + start)   \n",
        "        #plt.plot(ind_ons, ibi[ind_ons], marker = 'o', color = 'red') \n",
        "    ons = ons.astype(int)\n",
        "    #print('Onsets: ' + str(ons))\n",
        "    #plt.figure()\n",
        "    #plt.plot(x, color = 'black')\n",
        "    #plt.scatter(pks, x[pks], marker = 'o', color = 'red') \n",
        "    #plt.scatter(ons, x[ons], marker = 'o', color = 'blue') \n",
        "    \n",
        "    # Search in time series: Diastolic peak and dicrotic notch between consecutive onsets\n",
        "    dia = np.empty(0)\n",
        "    dic = np.empty(0)\n",
        "    for i in range(len(ons) - 1):\n",
        "        start = ons[i]\n",
        "        stop = ons[i + 1]\n",
        "        ind_pks, = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
        "        ind_pks = pks[ind_pks]\n",
        "        ibi_portion = x[ind_pks:stop]\n",
        "        ibi_2d_portion = d2x[ind_pks:stop]\n",
        "        #plt.figure()\n",
        "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
        "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
        "        aux_dic, _ = sp.find_peaks(ibi_2d_portion)\n",
        "        aux_dic = aux_dic.astype(int)\n",
        "        aux_dia, _ = sp.find_peaks(-ibi_2d_portion)\n",
        "        aux_dia = aux_dia.astype(int)   \n",
        "        if len(aux_dic) != 0:\n",
        "            ind_max, = np.where(ibi_2d_portion[aux_dic] == np.max(ibi_2d_portion[aux_dic]))\n",
        "            aux_dic_max = aux_dic[ind_max]\n",
        "            if len(aux_dia) != 0:\n",
        "                nearest = aux_dia - aux_dic_max\n",
        "                aux_dic = aux_dic_max\n",
        "                dic = np.append(dic, (aux_dic + ind_pks).astype(int))\n",
        "                #plt.scatter(aux_dic, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
        "                ind_dia, = np.where(nearest > 0)\n",
        "                aux_dia = aux_dia[ind_dia]\n",
        "                nearest = nearest[ind_dia]\n",
        "                if len(nearest) != 0:\n",
        "                    ind_nearest, = np.where(nearest == np.min(nearest))\n",
        "                    aux_dia = aux_dia[ind_nearest]\n",
        "                    dia = np.append(dia, (aux_dia + ind_pks).astype(int))\n",
        "                    #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')\n",
        "                    #break\n",
        "            else:\n",
        "                dic = np.append(dic, (aux_dic_max + ind_pks).astype(int))\n",
        "                #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')     \n",
        "    dia = dia.astype(int)\n",
        "    dic = dic.astype(int)\n",
        "    #plt.scatter(dia, x[dia], marker = 'o', color = 'orange')\n",
        "    #plt.scatter(dic, x[dic], marker = 'o', color = 'green')\n",
        "    \n",
        "    # Search in D1: Maximum slope point\n",
        "    m1d = np.empty(0)\n",
        "    for i in range(len(ons) - 1):\n",
        "        start = ons[i]\n",
        "        stop = ons[i + 1]\n",
        "        ind_pks, = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
        "        ind_pks = pks[ind_pks]\n",
        "        ibi_portion = x[start:ind_pks]\n",
        "        ibi_1d_portion = d1x[start:ind_pks]\n",
        "        #plt.figure()\n",
        "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
        "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
        "        aux_m1d, _ = sp.find_peaks(ibi_1d_portion)\n",
        "        aux_m1d = aux_m1d.astype(int)  \n",
        "        if len(aux_m1d) != 0:\n",
        "            ind_max, = np.where(ibi_1d_portion[aux_m1d] == np.max(ibi_1d_portion[aux_m1d]))\n",
        "            aux_m1d_max = aux_m1d[ind_max]\n",
        "            if len(aux_m1d_max) > 1:\n",
        "                aux_m1d_max = aux_m1d_max[0]\n",
        "            m1d = np.append(m1d, (aux_m1d_max + start).astype(int))\n",
        "            #plt.scatter(aux_m1d, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
        "            #break    \n",
        "    m1d = m1d.astype(int)\n",
        "    #plt.scatter(m1d, x[m1d], marker = 'o', color = 'purple')\n",
        "    \n",
        "    # Search in time series: Tangent intersection points\n",
        "    tip = np.empty(0)\n",
        "    for i in range(len(ons) - 1):\n",
        "        start = ons[i]\n",
        "        stop = ons[i + 1]\n",
        "        ibi_portion = x[start:stop]\n",
        "        ibi_1d_portion = d1x[start:stop]\n",
        "        ind_m1d, = np.intersect1d(np.where(m1d < stop), np.where(m1d > start))\n",
        "        ind_m1d = m1d[ind_m1d] - start\n",
        "        #plt.figure()\n",
        "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
        "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
        "        #plt.scatter(ind_m1d, ibi_portion[ind_m1d]/np.max(ibi_portion), marker = 'o')\n",
        "        #plt.scatter(ind_m1d, ibi_1d_portion[ind_m1d]/np.max(ibi_1d_portion), marker = 'o')\n",
        "        aux_tip = np.round(((ibi_portion[0] - ibi_portion[ind_m1d])/ibi_1d_portion[ind_m1d]) + ind_m1d)\n",
        "        aux_tip = aux_tip.astype(int)\n",
        "        tip = np.append(tip, (aux_tip + start).astype(int))        \n",
        "        #plt.scatter(aux_tip, ibi_portion[aux_tip]/np.max(ibi_portion), marker = 'o')\n",
        "        #break\n",
        "    tip = tip.astype(int)\n",
        "    #plt.scatter(tip, x[tip], marker = 'o', color = 'aqua')\n",
        "    \n",
        "    # Search in D2: A, B, C, D and E points\n",
        "    a2d = np.empty(0)\n",
        "    b2d = np.empty(0)\n",
        "    c2d = np.empty(0)\n",
        "    d2d = np.empty(0)\n",
        "    e2d = np.empty(0)\n",
        "    for i in range(len(ons) - 1):\n",
        "        start = ons[i]\n",
        "        stop = ons[i + 1]\n",
        "        ibi_portion = x[start:stop]\n",
        "        ibi_1d_portion = d1x[start:stop]\n",
        "        ibi_2d_portion = d2x[start:stop]\n",
        "        ind_m1d = np.intersect1d(np.where(m1d > start),np.where(m1d < stop))\n",
        "        ind_m1d = m1d[ind_m1d]\n",
        "        #plt.figure()\n",
        "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
        "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
        "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
        "        aux_m2d_pks, _ = sp.find_peaks(ibi_2d_portion)\n",
        "        aux_m2d_ons, _ = sp.find_peaks(-ibi_2d_portion)\n",
        "        # a point:\n",
        "        ind_a, = np.where(ibi_2d_portion[aux_m2d_pks] == np.max(ibi_2d_portion[aux_m2d_pks]))\n",
        "        ind_a = aux_m2d_pks[ind_a]\n",
        "        if (ind_a < ind_m1d):\n",
        "            a2d = np.append(a2d, ind_a + start)\n",
        "            #plt.scatter(ind_a, ibi_2d_portion[ind_a]/np.max(ibi_2d_portion), marker = 'o')\n",
        "            # b point:\n",
        "            ind_b = np.where(ibi_2d_portion[aux_m2d_ons] == np.min(ibi_2d_portion[aux_m2d_ons]))\n",
        "            ind_b = aux_m2d_ons[ind_b]\n",
        "            if (ind_b > ind_a) and (ind_b < len(ibi_2d_portion)):\n",
        "                b2d = np.append(b2d, ind_b + start)\n",
        "                #plt.scatter(ind_b, ibi_2d_portion[ind_b]/np.max(ibi_2d_portion), marker = 'o')\n",
        "        # e point:\n",
        "        ind_e, = np.where(aux_m2d_pks > ind_m1d - start)\n",
        "        aux_m2d_pks = aux_m2d_pks[ind_e]\n",
        "        ind_e, = np.where(aux_m2d_pks < 0.6*len(ibi_2d_portion))\n",
        "        ind_e = aux_m2d_pks[ind_e]\n",
        "        if len(ind_e) >= 1:\n",
        "            if len(ind_e) >= 2:\n",
        "                ind_e = ind_e[1]\n",
        "            e2d = np.append(e2d, ind_e + start)\n",
        "            #plt.scatter(ind_e, ibi_2d_portion[ind_e]/np.max(ibi_2d_portion), marker = 'o')\n",
        "            # c point:\n",
        "            ind_c, = np.where(aux_m2d_pks < ind_e)\n",
        "            if len(ind_c) != 0:\n",
        "                ind_c_aux = aux_m2d_pks[ind_c]\n",
        "                ind_c, = np.where(ibi_2d_portion[ind_c_aux] == np.max(ibi_2d_portion[ind_c_aux]))\n",
        "                ind_c = ind_c_aux[ind_c]\n",
        "                if len(ind_c) != 0:\n",
        "                    c2d = np.append(c2d, ind_c + start)\n",
        "                    #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
        "            else:\n",
        "                aux_m1d_ons, _ = sp.find_peaks(-ibi_1d_portion)\n",
        "                ind_c, = np.where(aux_m1d_ons < ind_e)\n",
        "                ind_c_aux = aux_m1d_ons[ind_c]\n",
        "                if len(ind_c) != 0:\n",
        "                    ind_c, = np.where(ind_c_aux > ind_b)\n",
        "                    ind_c = ind_c_aux[ind_c]\n",
        "                    if len(ind_c) > 1:\n",
        "                        ind_c = ind_c[0]\n",
        "                    c2d = np.append(c2d, ind_c + start)\n",
        "                    #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
        "            # d point:\n",
        "            if len(ind_c) != 0:\n",
        "                ind_d = np.intersect1d(np.where(aux_m2d_ons < ind_e), np.where(aux_m2d_ons > ind_c))\n",
        "                if len(ind_d) != 0:\n",
        "                    ind_d_aux = aux_m2d_ons[ind_d]\n",
        "                    ind_d, = np.where(ibi_2d_portion[ind_d_aux] == np.min(ibi_2d_portion[ind_d_aux]))\n",
        "                    ind_d = ind_d_aux[ind_d]\n",
        "                    if len(ind_d) != 0:\n",
        "                        d2d = np.append(d2d, ind_d + start)\n",
        "                        #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')                \n",
        "                else:\n",
        "                    ind_d = ind_c\n",
        "                    d2d = np.append(d2d, ind_d + start)\n",
        "                    #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')\n",
        "    a2d = a2d.astype(int)\n",
        "    b2d = b2d.astype(int)\n",
        "    c2d = c2d.astype(int)\n",
        "    d2d = d2d.astype(int)\n",
        "    e2d = e2d.astype(int)\n",
        "    #plt.figure()\n",
        "    #plt.plot(d2x, color = 'black')\n",
        "    #plt.scatter(a2d, d2x[a2d], marker = 'o', color = 'red') \n",
        "    #plt.scatter(b2d, d2x[b2d], marker = 'o', color = 'blue')\n",
        "    #plt.scatter(c2d, d2x[c2d], marker = 'o', color = 'green')\n",
        "    #plt.scatter(d2d, d2x[d2d], marker = 'o', color = 'orange')\n",
        "    #plt.scatter(e2d, d2x[e2d], marker = 'o', color = 'purple')\n",
        "    \n",
        "    # Search in D3: P1 and P2 points\n",
        "    p1p = np.empty(0)\n",
        "    p2p = np.empty(0)\n",
        "    for i in range(len(ons) - 1):\n",
        "        start = ons[i]\n",
        "        stop = ons[i + 1]\n",
        "        ibi_portion = x[start:stop]\n",
        "        ibi_1d_portion = d1x[start:stop]\n",
        "        ibi_2d_portion = d2x[start:stop]\n",
        "        ibi_3d_portion = d3x[start:stop]\n",
        "        ind_b = np.intersect1d(np.where(b2d > start),np.where(b2d < stop))\n",
        "        ind_b = b2d[ind_b]\n",
        "        ind_c = np.intersect1d(np.where(c2d > start),np.where(c2d < stop))\n",
        "        ind_c = c2d[ind_c]\n",
        "        ind_d = np.intersect1d(np.where(d2d > start),np.where(d2d < stop))\n",
        "        ind_d = d2d[ind_d]\n",
        "        ind_dic = np.intersect1d(np.where(dic > start),np.where(dic < stop))\n",
        "        ind_dic = dic[ind_dic]\n",
        "        #plt.figure()\n",
        "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
        "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
        "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
        "        #plt.plot(ibi_3d_portion/np.max(ibi_3d_portion))\n",
        "        #plt.scatter(ind_b - start, ibi_3d_portion[ind_b - start]/np.max(ibi_3d_portion), marker = 'o')\n",
        "        #plt.scatter(ind_c - start, ibi_3d_portion[ind_c - start]/np.max(ibi_3d_portion), marker = 'o')\n",
        "        #plt.scatter(ind_d - start, ibi_3d_portion[ind_d - start]/np.max(ibi_3d_portion), marker = 'o')\n",
        "        #plt.scatter(ind_dic - start, ibi_3d_portion[ind_dic - start]/np.max(ibi_3d_portion), marker = 'o')\n",
        "        aux_p3d_pks, _ = sp.find_peaks(ibi_3d_portion)\n",
        "        aux_p3d_ons, _ = sp.find_peaks(-ibi_3d_portion)\n",
        "        # P1:\n",
        "        if (len(aux_p3d_pks) != 0 and len(ind_b) != 0):\n",
        "            ind_p1, = np.where(aux_p3d_pks > ind_b - start)\n",
        "            if len(ind_p1) != 0:\n",
        "                ind_p1 = aux_p3d_pks[ind_p1[0]]\n",
        "                p1p = np.append(p1p, ind_p1 + start)\n",
        "                #plt.scatter(ind_p1, ibi_3d_portion[ind_p1]/np.max(ibi_3d_portion), marker = 'o')\n",
        "        # P2:\n",
        "        if (len(aux_p3d_ons) != 0 and len(ind_c) != 0 and len(ind_d) != 0):\n",
        "            if ind_c == ind_d:\n",
        "                ind_p2, = np.where(aux_p3d_ons > ind_d - start)\n",
        "                ind_p2 = aux_p3d_ons[ind_p2[0]]\n",
        "            else:\n",
        "                ind_p2, = np.where(aux_p3d_ons < ind_d - start)\n",
        "                ind_p2 = aux_p3d_ons[ind_p2[-1]]\n",
        "            if len(ind_dic) != 0:\n",
        "                aux_x_pks, _ = sp.find_peaks(ibi_portion)\n",
        "                if ind_p2 > ind_dic - start:\n",
        "                    ind_between = np.intersect1d(np.where(aux_x_pks < ind_p2), np.where(aux_x_pks > ind_dic - start))\n",
        "                else:\n",
        "                    ind_between = np.intersect1d(np.where(aux_x_pks > ind_p2), np.where(aux_x_pks < ind_dic - start))\n",
        "                if len(ind_between) != 0:\n",
        "                    ind_p2 = aux_x_pks[ind_between[0]]\n",
        "            p2p = np.append(p2p, ind_p2 + start)\n",
        "            #plt.scatter(ind_p2, ibi_3d_portion[ind_p2]/np.max(ibi_3d_portion), marker = 'o')\n",
        "    p1p = p1p.astype(int)\n",
        "    p2p = p2p.astype(int)\n",
        "    #plt.figure()\n",
        "    #plt.plot(d3x, color = 'black')\n",
        "    #plt.scatter(p1p, d3x[p1p], marker = 'o', color = 'green') \n",
        "    #plt.scatter(p2p, d3x[p2p], marker = 'o', color = 'orange')\n",
        "    \n",
        "    # Added by PC: Magnitudes of second derivative points\n",
        "    bmag2d = np.zeros(len(b2d))\n",
        "    cmag2d = np.zeros(len(b2d))\n",
        "    dmag2d = np.zeros(len(b2d))\n",
        "    emag2d = np.zeros(len(b2d))\n",
        "    for beat_no in range(0,len(d2d)):\n",
        "        bmag2d[beat_no] = d2x[b2d[beat_no]]/d2x[a2d[beat_no]]\n",
        "        cmag2d[beat_no] = d2x[c2d[beat_no]]/d2x[a2d[beat_no]]\n",
        "        dmag2d[beat_no] = d2x[d2d[beat_no]]/d2x[a2d[beat_no]]        \n",
        "        emag2d[beat_no] = d2x[e2d[beat_no]]/d2x[a2d[beat_no]]    \n",
        "        \n",
        "     # Added by PC: Refine the list of fiducial points to only include those corresponding to beats for which a full set of points is available\n",
        "    off = ons[1:]\n",
        "    ons = ons[:-1]\n",
        "    if pks[0] < ons[0]:\n",
        "        pks = pks[1:]\n",
        "    if pks[-1] > off[-1]:\n",
        "        pks = pks[:-1]\n",
        "    \n",
        "    # Visualise results\n",
        "    if vis == True:\n",
        "        fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1, sharex = True, sharey = False, figsize=(10,10))\n",
        "        fig.suptitle('Fiducial points') \n",
        "\n",
        "        ax1.plot(x, color = 'black')\n",
        "        ax1.scatter(pks, x[pks.astype(int)], color = 'orange', label = 'pks')\n",
        "        ax1.scatter(ons, x[ons.astype(int)], color = 'green', label = 'ons')\n",
        "        ax1.scatter(off, x[off.astype(int)], marker = '*', color = 'green', label = 'off')\n",
        "        ax1.scatter(dia, x[dia.astype(int)], color = 'yellow', label = 'dia')\n",
        "        ax1.scatter(dic, x[dic.astype(int)], color = 'blue', label = 'dic')\n",
        "        ax1.scatter(tip, x[tip.astype(int)], color = 'purple', label = 'dic')\n",
        "        ax1.legend()\n",
        "        ax1.set_ylabel('x')\n",
        "\n",
        "        ax2.plot(d1x, color = 'black')\n",
        "        ax2.scatter(m1d, d1x[m1d.astype(int)], color = 'orange', label = 'm1d')\n",
        "        ax2.legend()\n",
        "        ax2.set_ylabel('d1x')\n",
        "\n",
        "        ax3.plot(d2x, color = 'black')\n",
        "        ax3.scatter(a2d, d2x[a2d.astype(int)], color = 'orange', label = 'a')\n",
        "        ax3.scatter(b2d, d2x[b2d.astype(int)], color = 'green', label = 'b')\n",
        "        ax3.scatter(c2d, d2x[c2d.astype(int)], color = 'yellow', label = 'c')\n",
        "        ax3.scatter(d2d, d2x[d2d.astype(int)], color = 'blue', label = 'd')\n",
        "        ax3.scatter(e2d, d2x[e2d.astype(int)], color = 'purple', label = 'e')\n",
        "        ax3.legend()\n",
        "        ax3.set_ylabel('d2x')\n",
        "\n",
        "        ax4.plot(d3x, color = 'black')\n",
        "        ax4.scatter(p1p, d3x[p1p.astype(int)], color = 'orange', label = 'p1')\n",
        "        ax4.scatter(p2p, d3x[p2p.astype(int)], color = 'green', label = 'p2')\n",
        "        ax4.legend()\n",
        "        ax4.set_ylabel('d3x')\n",
        "\n",
        "        plt.subplots_adjust(left = 0.1,\n",
        "                            bottom = 0.1, \n",
        "                            right = 0.9, \n",
        "                            top = 0.9, \n",
        "                            wspace = 0.4, \n",
        "                            hspace = 0.4)\n",
        "        \n",
        "    # Creation of dictionary\n",
        "    fidp = {'pks': pks.astype(int),\n",
        "            'ons': ons.astype(int),\n",
        "            'off': off.astype(int),  # Added by PC\n",
        "            'tip': tip.astype(int),\n",
        "            'dia': dia.astype(int),\n",
        "            'dic': dic.astype(int),\n",
        "            'm1d': m1d.astype(int),\n",
        "            'a2d': a2d.astype(int),\n",
        "            'b2d': b2d.astype(int),\n",
        "            'c2d': c2d.astype(int),\n",
        "            'd2d': d2d.astype(int),\n",
        "            'e2d': e2d.astype(int),\n",
        "            'bmag2d': bmag2d,\n",
        "            'cmag2d': cmag2d,\n",
        "            'dmag2d': dmag2d,\n",
        "            'emag2d': emag2d,\n",
        "            'p1p': p1p.astype(int),\n",
        "            'p2p': p2p.astype(int)\n",
        "            }\n",
        "    \n",
        "    return fidp"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "id": "7103bbf4",
      "metadata": {
        "id": "7103bbf4"
      },
      "outputs": [],
      "source": [
        ""
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.8.8"
    },
    "toc": {
      "base_numbering": 1,
      "nav_menu": {},
      "number_sections": true,
      "sideBar": true,
      "skip_h1_title": true,
      "title_cell": "Table of Contents",
      "title_sidebar": "Contents",
      "toc_cell": false,
      "toc_position": {},
      "toc_section_display": true,
      "toc_window_display": true
    },
    "colab": {
      "name": "pulse-wave-analysis.ipynb",
      "provenance": []
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}